package cn.wjssl.infrastructure.persistent.dao;

import cn.bugstack.middleware.db.router.annotation.DBRouter;
import cn.bugstack.middleware.db.router.annotation.DBRouterStrategy;
import cn.wjssl.infrastructure.persistent.po.TaskPO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 任务表，发送MQ
 */
@Mapper
public interface ITaskDao {

    // 插入任务记录
    int insert(TaskPO taskPO);

    // mq发送成功, 更新任务状态为Completed
    @DBRouter
    int updateTaskSendMessageCompleted(TaskPO taskPO);

    // mq发送失败, 更新任务状态为fail
    @DBRouter
    int updateTaskSendMessageFail(TaskPO taskPO);

    // 查询发送MQ失败和超时1分钟未发送的MQ limit 10
    // 由于在定时任务中, 查询前进行了手动分表, 所以这里不添加注解
    List<TaskPO> queryNoSendMessageTaskList();
}
